/********************************************************************** 
 * FILE		: AbstractStringUtil.java					
 *			
 * AUTHOR   : kloyf		
 * 
 * DATE		: 2011-6-3
 * 									
 * REASON	: CREATE  
 *            							
 * VERSION  ：0.0.1
 *
 ***********************************************************************/
package com.common.util.string;

import com.common.util.BaseUtil;

/**
 * 字符串工具类的抽象类
 * 
 * @author kloyf
 * @version 0.0.1
 * 
 */
public abstract class AbstractStringUtil extends BaseUtil {
	/** 7位ASCII字符，也叫作ISO646-US、Unicode字符集的基本拉丁块 */
	public static final String US_ASCII = "US-ASCII";

	/** ISO 拉丁字母表 No.1，也叫作 ISO-LATIN-1 */
	public static final String ISO_8859_1 = "ISO-8859-1";

	/** 8 位 UCS 转换格式 */
	public static final String UTF_8 = "UTF-8";

	/** 16 位 UCS 转换格式，Big Endian（最低地址存放高位字节）字节顺序 */
	public static final String UTF_16BE = "UTF-16BE";

	/** 16 位 UCS 转换格式，Little-endian（最高地址存放低位字节）字节顺序 */
	public static final String UTF_16LE = "UTF-16LE";

	/** 16 位 UCS 转换格式，字节顺序由可选的字节顺序标记来标识 */
	public static final String UTF_16 = "UTF-16";

	/** 中文超大字符集 */
	public static final String GBK = "GBK";

	/**
	 * 功能描述：分割字符串
	 * 
	 * @param str
	 *            String 原始字符串
	 * @param splitsign
	 *            String 分隔符
	 * @return String[] 分割后的字符串数组
	 */
	protected static String[] split(String str, String splitsign) {
		if (isEmpty(str) || isEmpty(splitsign)) {
			return null;
		}
		return str.split(splitsign);
	}

	/**
	 * 功能描述：对象是否为空
	 * 
	 * @param str
	 *            String 需要判断的对象
	 * @return boolean 判断对象是否为空。当对象为空时返回true，为假返回false
	 */
	public static boolean isEmptyString(String str) {
		if (isEmpty(str) || "".equals(str)) {
			return true;
		}
		return false;
	}

	/**
	 * 功能描述：替换字符串
	 * 
	 * @param source
	 *            String 母字符串
	 * @param from
	 *            String 原始字符串
	 * @param to
	 *            String 目标字符串
	 * 
	 * @return String 替换后的字符串
	 */
	public static String replace(String source, String from, String to) {
		if (isEmpty(source) || isEmpty(from) || isEmpty(to)) {
			return null;
		}
		return source.replace(from, to);
	}
}
